
# 异常和错误
"""
代码的运行逻辑 ：
1. 先检查代码语法格式 ，若出现这样的错误，直接报错(错误)
2. 运行代码 ，
    （1）在代码运行的过程中可能会出现问题，也会直接报错，使代码停止运行(异常 )。
    (2) 正常运行

示例 ：
    错误的示例 ：关键字写错 ，缩进问题 ，定义变量问题，传递参数数量不一致 。
    异常的示例 ：被零整除 ，下标越界 、转化类型 、编码问题


异常处理方式 ：
try:
    可能出错的代码块
except:
    要进行处理的动作
[finally:]
    此代码块始终都会被执行

说明 ：一旦加入finally，就不能在except和finally加入代码
"""
f = None
filename = 'a.txt'

try:
    f = open(filename,encoding='utf-8')      # 遇到编码问题 ，异常类型 ：nicodeDecodeError: 'gbk' codec can't
    contents = f.read()
except FileNotFoundError as e:
    print("文件不存在，请检查文件路径或者文件名是否正确")
except UnicodeDecodeError as e:
    print("文件编码异常，请检查打开文件是否指定格式")
except Exception as e:
    print(e)
    raise '未知错误'
finally:
    print("hello world")
    if f:
        f.close()

print("end")